function plotcustom(xdata, ydata, ydataerr, bPlotOption, marker_idx, color_idx)

if isempty(bPlotOption)
    bPlotOption.MarkerSize  = 6;
    bPlotOption.CapSize     = 0;
    bPlotOption.LineWidth   = 1;
    bPlotOption.FontSize    = 12;
    bPlotOption.MarkerList = {'o', 's', 'd', '>', 'x'};
end

color_list{1} = [67 84 147]/255;        % dark blue
color_list{2} = [110 153 201]/255;      % light blue
color_list{3} = [196 40 27]/255;        % dark red
color_list{4} = [218 134 121]/255;      % light red
color_list{5} = [40 127 70]/255;        % dark green
color_list{6} = [161 196 139]/255;      % light green
color_list{7} = [218 165 32]/255;       % gold
color_list{8} = [238 221 130]/255;      % light gold
color_list{9} = [128 0 128]/255;        % purple
color_list{10} = [204 153 255]/255;     % light purple
color_list{11} = [161 165 162]/255;     % grey

if ~isempty(ydataerr)
    errorbar(xdata, ydata, ydataerr, '.', 'capsize', bPlotOption.CapSize, 'linewidth', bPlotOption.LineWidth, 'color', color_list{color_idx}, 'handlevisibility', 'off')
    hold on
end
plot(xdata, ydata, bPlotOption.MarkerList{marker_idx}, 'markersize', bPlotOption.MarkerSize, 'color', color_list{color_idx}, 'MarkerFaceColor', color_list{color_idx+1})


end